﻿using System;
using System.Collections.Generic;
using Luna.Model.Common;

namespace Luna.Data.Common
{
    public interface ISearchProvider
    {
        #region Text search

        IEnumerable<ISearchData> TextSearchGetAll();

        ISearchData TextSearchGet(Guid reference);

        IEnumerable<ISearchData> TextSearch(string searchToken, int rows);

        void TextSearchSave(ISearchData data);

        void TextSearchDelete(Guid reference);

        #endregion Text search

        #region Geolocalisation

        IEnumerable<IGeolocalisationData> GeolocalisationGetAll();

        IGeolocalisationData GeolocalisationGet(Guid reference);

        IEnumerable<IGeolocalisationData> GeolocalizationSearch(IGeoData localisation, float distance, int rows);

        void GeolocalisationSave(IGeolocalisationData data);

        void GeolocalisationDelete(Guid reference);

        #endregion Geolocalisation
    }
}